
 



 



<html>
 <head>
 <title>ContributingToObjectify</title>
 </head>
 <body>
 




<div id="wikipage">
<table>
 <tr>
 
 
 <td style="vertical-align:top; padding-left:5px">
 
 <div id="wikiheader">
 
 <span style="font-size:120%;font-weight:bold">ContributingToObjectify</span>
 &nbsp;
 <div> 
 
 <i>How to help out</i>
 
 
 
 <div id="wikiauthor" style="float:right">
 Updated <span title="Tue Oct 19 14:30:01 2010">
 Oct 19, 2010</span>
 
 by <a style="white-space: nowrap" href="/u/@WBNTRFBZBhBDWgg%3D/">lhori...@gmail.com</a>
 
 </div>
 </div>
 </div>
 
 <div id="wikicontent">
 <div class="vt" id="wikimaincol">
 <p>Interested in helping out with this project?  GREAT!  Here&#x27;s some advice to get you started. </p><h1><a name="Build_Environment"></a>Build Environment<a href="#Build_Environment" class="section_anchor"></a></h1><p>Objectify developers use Eclipse and ant. </p><p>Eclipse is used to edit the code and run the unit tests.  You will need to install the Google Plugin and the latest version of the Google App Engine SDK.  Note that Objectify is not a &quot;Google App Engine Project&quot; with a <tt>war/</tt> directory, but it does use the Google App Engine SDK library configured automatically by the Eclipse plugin. </p><p>Ant is used to build the distribution.  You will need to edit <tt>edit-this-to-build.properties</tt> and point it at the correct path to the GAE SDK.  Running &quot;ant&quot; alone will build the Objectify jar and &quot;ant dist&quot; will build the whole distribution zipfile including documentation. </p><h1><a name="Code_Standards"></a>Code Standards<a href="#Code_Standards" class="section_anchor"></a></h1><p>Objectify code uses 4-space HARD tabs.  It uses Pascal-style bracing conventions.  Look at existing source code for an example and follow the pattern. </p><p>All code submissions should be well-commented and include TestNG unit tests. </p><h1><a name="Running_Unit_Tests"></a>Running Unit Tests<a href="#Running_Unit_Tests" class="section_anchor"></a></h1><p>To run the unit tests you will need to do two things: </p><ol><li>Install the TestNG plugin for Eclipse </li><li>Create an Eclipse User Library called &quot;App Engine Unit Testing X.X.X&quot; with the correct SDK version number.  The user library should contain <a href="http://code.google.com/appengine/docs/java/tools/localunittesting.html#Introducing_App_Engine_Utilities" rel="nofollow">these four appengine jars</a>:  <tt>appengine-api.jar, appengine-api-labs.jar, appengine-api-stubs.jar, appengine-testing.jar</tt>. </li></ol><p>Note that there are a few tests that fail &quot;out of the box&quot;.  These expose broken behavior in the GAE SDK itself and are documented as such.  If in doubt, look at the test code - if it it doesn&#x27;t say &quot;this is expected to fail&quot;, it shouldn&#x27;t fail. </p><h1><a name="Submitting_Code"></a>Submitting Code<a href="#Submitting_Code" class="section_anchor"></a></h1><p>All patches should be submitted as an attachment to an issue in the issue tracker.  If there is no pre-existing issue, create one.  Discussions on the <a href="http://groups.google.com/group/objectify-appengine" rel="nofollow">objectify-appengine google group</a> are often helpful. </p><h1><a name="Welcome_Aboard!"></a>Welcome Aboard!<a href="#Welcome_Aboard!" class="section_anchor"></a></h1><p>The Objectify team is very interested your ideas and submissions.  That said, we are also very picky about what features we include in the core - Objectify is intended to be a thin, convenient layer on top of the low-level datastore API rather than a &quot;kitchen sink&quot; framework.  We are happy to link to related projects from the <a href="Extensions.html">Extensions</a> page. </p><p>If you are wondering where to start, look through the issue tracker.  Start a discussion early on the <a href="http://groups.google.com/group/objectify-appengine" rel="nofollow">objectify-appengine google group</a> - we will take the time to offer API advice and architectural guidance as well as to evaluate the proposal. </p><p>The absolute best way to start is to submit a patch with some unit tests - even (especially!) if they fail. </p>
 </div>
 </div>
 </td><tr>
</table>
 </div>




 
 <br>
 <div class="artifactcomment">
 <span class="indicator">&#9658;</span> <a href="https://www.google.com/accounts/ServiceLogin?service=code&amp;ltmpl=phosting&amp;continue=http%3A%2F%2Fcode.google.com%2Fp%2Fobjectify-appengine%2Fwiki%2FContributingToObjectify%3Fshow%3Dcontent&amp;followup=http%3A%2F%2Fcode.google.com%2Fp%2Fobjectify-appengine%2Fwiki%2FContributingToObjectify%3Fshow%3Dcontent"
 >Sign in</a> to add a comment
 </div>
 
 
<form name="delcom" action="../w/delComment.do" method="POST">
 <input type="hidden" name="sequence_num" value="" >
 <input type="hidden" name="create_time" value="" >
 <input type="hidden" name="mode" value="" >
 <input type="hidden" name="pagename" value="ContributingToObjectify" >
 <input type="hidden" name="token" value="" >
</form>


 <script src="http://www.gstatic.com/codesite/ph/12364374701854919368/js/dwiki_scripts_20081003.js"></script>


<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/12364374701854919368/js/dit_scripts.js"></script>



 </body>
</html>

